一个Python 程序员点技能树的过程

这一篇算是自己的awosome python。记录一下自己学习Python过程中接触的知识点,以便自己可以随时复习,同时也便于队友的学习,让新手少走弯路。不定期更新。

  • The Python Tutorial 必读的Python完整教程,我入门Python的书是Python核心编程,这本书也不错,如果是有经验的程序员,其实读Python官方教程就够了,而且官方的文档才是正道啊,毕竟那么多书都是从文档里抄的。

  • python中的str与unicode处理方法 Python编码问题想必都接触过,看懂这一篇,不需要再花时间找其他的看了。

  • Python正则表达式指南 写爬虫必须经历的一道坎。其实正则表达式是博大精深的,要想从代码工人向专家进化,需再拜读这一本精通正则表达式,或者,像轮子哥那样,写一个正则表达式引擎。

  • 写一个项目的过程中,遇到一个这样的问题,将一个None(命名为url_id)值用str()函数转化后,竟然无法用if url_id is None做判断,从why-strnone-is-not-strnone得到了答案,原来我犯了两个错误,错误一是str(url_id)得到的结果是’None’,错误二是,is操作比较的是identity,而==比较的是value

  • 关于Python的面试题:interview_python,类似的还有stackoverflow上关于python的高赞回答,当然看英文的最好。还有pytips,其实有一本书叫做编写高质量代码:改善Python程序的91个建议,做的事情类似。

  • 一直以为python是用if语句来模仿a?:b,c的,其实还可以用 and or, 比如 bool and a or b 就相当于bool?:a,b

  • Python 字典比较原则

    1. 比较字典长度

      字典长度不同,用 cmp(dict1, dict2) 比较大小时,len(dict1)>len(dict2),则返回正值,即 len(dict1)>len(dict2) -> dict1>dict2

    2. 比较字典的键

      字典的长度相同,按照字典的键比较,键比较的顺序和 keys() 方法返回键的顺序相同(相同的键会映射到哈希表的同一位置,这保证了对字典键的检查的一致性),当两个字典的键不匹配是,对这两个不匹配的键进行比较,当 dict1 中的第一个不同的键大于 dict2 中第一个不同的键时,cmp() 会返回正值

    3. 比较字典的值

      字典的长度相同,键值也完全匹配,则用字典中每个相同的键所对应的值来进行比较。一旦出现不匹配的值,对这两个值直接进行比较。

    4. 完全匹配
      两个字典有同样的长度、相同的键、每个键也对应相同的值,则字典完全匹配,返回0

      总结:字典比较,先长短,再键,再值

  • Python 列表比较总结

    1. 对两个列表的元组进行比较

    2. 如果比较的元素是同类型的,比较其值,返回结果

    3. 如果两个元素不是同一种类型,检查是否有数字

      • 如果是数字,数字强制类型转换,然后比较
      • 如果有一方的元素是数字,则另一方的元素大(数字最小)
      • 否则,通过类型名字的字母顺序进行比较
    4. 如果一个列表先到达末尾,则另一个长一点的列表常

    5. 如果两个列表都遍历完了,且所有的元素都相等,返回0

      总结:列表比较,先比较大小,再比较长短